#ifndef EDGE_HPP
#define EDGE_HPP

#include <map>
#include <boost/ref.hpp>

#include "Node.hpp"

// If it is directed, we shall use that the first node is whence the
// arrow comes.
class Edge : public std::pair< boost::reference_wrapper< const Node >, boost::reference_wrapper< const Node > >
{
public:
  Edge(Node& n1, Node& n2);
  ~Edge(){};
  bool getIsDirected() const;
private:
  bool isDirected;
};

#endif
